One way that database administrators ensure the availability and integrity of data stored by a database management system is by storing data redundantly, i.e., storing and maintaining multiple copies of the database data. Storing data redundantly allows a database management system to be tolerant of data loss to a certain degree. For example, a database management system that stores a copy of a particular file on a first data structure and stores another copy of the particular file on a distinct second data structure only loses the particular file when both the first and second data structures are lost. Thus, the database management system in the given example is tolerant of the loss of one of the first and second data structures, but is not tolerant of the loss of both data structures.
In some cases, database administrators are required to protect data maintained by a database management system by creating redundant copies of the data at multiple sites, where each site is located in a distinct location from the other sites. For example, a system administrator maintains storage for a database management system at one site in a first geographical city and more storage for the database management system in another site in a second geographical city. As another example, a system administrator maintains the first site in a first fire cell within a building and the other site in another fire cell in the same building. Data that is stored redundantly at multiple sites protects against data loss resulting from physical threats, such as fire, earthquake, etc.
Traditional storage redundancy, such as Redundant Array of Independent Disks (RAID), is deployed in one of two ways: a) across a number of failure groups within the same site, or b) across two different sites. None of the traditional RAID technologies can accomplish both storage redundancy across multiple sites where each site encompasses multiple failure groups. Thus, in order to tolerate the loss of an entire site and the concurrent loss of a portion of the storage units at a second site, database administrators must implement redundancy across the multiple sites and also redundancy with the sites by layering multiple technologies.
Database administrators layer multiple technologies to redundantly store database data based on the desired data fault tolerance, and may use one technology to protect across two different sites and use another technology to protect across failure groups within a given site. For example, a database administrator (that manages a database management system with redundant data across two sites) deploys a storage array at each site and additionally uses RAID 1 to mirror data across the two sites. The storage array provides redundancy within a site (which allows toleration of the loss of some storage units within the site), whereas RAID 1 mirrors the two sites as a whole.
It can be difficult to combine and manage multiple redundancy solutions for a single database management system. For instance, these kinds of layered redundancy solutions require a database administrator to manage two different redundancy solutions for a single database management system, which increases the management overhead of the system and also increases the chance for misconfiguration. It would be beneficial to have a streamlined single solution that provides data redundancy both across multiple sites within the sites themselves.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.